#-*- coding: utf-8 -*-
import cartao

class CartaoIterador(cartao.Cartao):
	def __init__(self, numero='',nome=''):
		'''
		construtor
		'''
		cartao.Cartao.__init__(self,numero,nome)
		cartao.Cartao(numero,nome)
		self.index_nome = 0
		pass
		
	def __iter__(self):
		return self
				
	def next(self):
		if self.index_nome >= len(self.nome):
			raise StopIteration
		x = self.nome[self.index_nome]
		self.index_nome +=1
		
		return reduce (lambda a , b : a+b ,
						[ ' ' for k in range (self . index_nome ) ] ) + '' + x
		pass
		
def lista_salta_em_2(lista):
	'''
	com geradores simplifica-se a criacao de iteradores
	'''
	index = 0
	while index < len(lista):
		yield lista [ index ]
		index +=2
		
def teste():
	obj1 = CartaoIterador('123456789','manuel jardim')
	print obj1.nome
	
	#e agora uso do iterador sobre o nome
	for x in obj1:
		print x
		
	lista = range(0,20)
	
	for x in lista_salta_em_2(lista):
		print x
	pass
teste()
